Many electronic products today include requirements that data transmitted or received at the device be in a “secure” format. Many public service two-way radio products require that communications either sent to or received from the radio be encrypted to ensure the accuracy and security of the voice or data exchanged during a communication. Since encryption has been used for many years, there are many different formats and methods by which data can be encrypted within these devices.
With regard to two-way radio communications, in order to facilitate the encryption of data, an encryption key along with a complex algorithm is used in the radio to enable data to be encrypted or decrypted. The encryption key is transferred to encryption circuitry within the radio which, in part, instructs the radio on how to process the encrypted communications. Prior art loading techniques typically use a key loader, which acts as an interface to facilitate the transmission of a desired encryption key from a computer to the radio. More recently, more complex key loading technology has been used where a key variable loader (KVL) is used to generate encryption keys and to communicate with a universal crypto module (UCM) located within the radio for the purpose of transferring encryption keys to the UCM. All encryption key information is received from the KVL where it is then stored within the UCM which is a separate physical device. A user may load key information into the UCM through the use of either the KVL or through over-the-air transmission (OTAR) commands. For the purpose of OTAR, the UCM initially communicates with the KVL to acquire key encryption keys (KEKs) for use with the encryption commands sent over the air from fixed network equipment (FNE).
Prior art FIG. 1 shows a key loader communications system 100 that includes a KVL 101 connected to a control device 103 typically located in an encryption device (not shown). The KVL 101 communicates with the control device 103 via a keyfill line 105 and device detect line 107. Data is conveyed from the KVL 101 over the keyfill line 105 to a first general purpose input output peripheral (GPIO keyfill) 109. The GPIO captures data coming in from the KVL 101 or it can also transmit data in a bi-directional fashion back to the KVL. The difficulty in using the GPIO 109 is that it must sample data over the keyfill line 105 at a high rate. Sampling must occur at a speed that enables the GPIO 109 to capture a complete byte of data.
Thus, the GPIO 109 must operate at a sufficient speed to detect all bit transitions such that no command or control information is lost from the KVL 101. The GPIO 109 is connected to a KVL link layer driver 111 through a register interface. A timer peripheral 113 is connected to the KVL link layer driver 111 for conveying timing information for data sampling over the keyfill line 105. The KVL link layer driver 111 is the controlling software that uses timing information from the timer peripheral 113, along with data sampled from the GPIO peripheral 109, to send or receive encryption key command data to a KVL 101 application. The KVL application 114 is the software application that interprets key load and key management commands so that the control device 103 accurately interprets the data from the KVL 101. The KVL application 114 works to accurately interpret incoming data before it will accept any key from KVL 101. A second GPIO peripheral (GPIO detect) 115 connects the KVL 101 through a device detect line 107. The KVL detection application 117 uses the GPIO N to detect the occurrence of a logical low on the device detect line. This allows the control device 103 to detect the presence of the KVL 101 and any subsequent control commands sent from that device. It should be evident to those skilled in the art that any number (N) of GPIO peripherals may be used for accomplishing any number of interface tasks.
One problem associated with this prior art architecture is that it will operate only with control devices that include a GPIO 109. Moreover, this architecture works relatively slowly when the KVL 101 utilizes the keyfill line 105. Specifically, when the KVL 101 is connected to the control device through GPIO 109, the processing resources required to drive and sample the keyfill line via a GPIO 109 and a timer peripheral 113 render the encryption devices unable to accomplish any other tasks in parallel. With such a heavy use of processing resources, a device such as a two-way radio cannot accept an incoming dispatch communication since the processor is occupied interpreting encryption commands from KVL 101.
Accordingly, the need exists for a system and method for communicating with a KVL enabling the KVL to communicate with a broader range of devices utilizing encryption keys without requiring the use of all system processing resources.